/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fsm;

/**
 * repräsentiert Gruppen, die man entfernen kann
 * liefert die Punkte für den Zug
 * @author bomik
 */
public interface Group {
    /**
     * @return indizes der elemente der gruppe
     */
    public int[] getMembers();
    /**
     * @return Punkte, die das entfernen der gruppe bringt
     */
    public int getPoints();
    /**
     * loesche die gruppe, kassiere die punkte usw..
     * muss moeglichst so impl. werden, dass von oben nach unten die elemente geloescht werden
     * damit minimale berechnungen für das nachrutschen der anderen kugeln (die ja
     * von oben runterfallen) benoetigt sind
     */
    public void remove();
    /**
     * @return  true, wenn mind. die anzahl an elemnten vorhanden, die ein entfernen erlaubt
     *   <br>   false, sonst
     */
    public boolean isRemovable();
}
